home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / miscpas.zip / MATH21.PAS < prev    next >
Pascal/Delphi Source File  |  1984-07-01  |  50KB  |  1,013 lines

  1. (*******************************************************************)
  2. (*                                                                 *)
  3. (*  Draws a `Ruler.`  People can relate to rulers.  They have      *)
  4. (*  scales on them; centimeters or inches.  We draw straight lines *)
  5. (*  lines and make measurements with them. We will use them in map *)
  6. (*  map making too.   Relatable foundations for linear equations!  *)
  7. (*                                                                 *)
  8. (*******************************************************************)
  9. Program LinearEquations;        (**** Global Variables ****)
  10.  
  11. Var
  12.   Xlow,Yhi,Vlen, Hlen,I,Neq : Integer;   (* Vert.& horiz. line lengths. *)
  13.      Xsc,Ysc,Ty,Y1off,Y2off : Integer;   (* For 80x25 scale. *)
  14. Vindx,Xinc,Yinc,Xwide,Yzero : Integer;
  15.       Xhlow,Xhhi,Yhlow,Yhhi : Integer;   (* Hires coordinates. *)
  16.         Mradius,Ycept,Slope : Real;      (* Y intercept & slope. *)
  17.                       Ch,Zh : Char;
  18.                    Ccontrol : File;
  19. {===================================================================}
  20. Procedure Key;  Begin
  21.   Gotoxy(27,25); Write(' Press any key ');
  22.   Repeat until Keypressed;
  23.   Gotoxy(26,25); Write('                   ');
  24. end;   (* Procedure Key.*)
  25.   {---------------------------------------------------------------}
  26. (*******************************************************************)
  27. (*                                                                 *)
  28. (*  Call this at the end of each Section, or NODE.  It allows you  *)
  29. (*  1 of 3 choices: Return to Menu.  Next topic.  Or Quit.         *)
  30. (*                                                                 *)
  31. (*******************************************************************)
  32.                        Procedure MainControl; forward;
  33. Procedure Node;  Begin
  34.  
  35. Gotoxy(14,25);Write('Press `N` for next topic, `M` for Menu, `Q` to Quit.');
  36.  
  37.   Repeat
  38.     Read(Kbd,ch);
  39.     ch:=UpCase(ch);
  40.     until (Ch IN ['M','N','Q']);
  41. Gotoxy(14,25);Write('                                                     ');
  42.  
  43. If (Ch='M') then MainControl;
  44. If (Ch='Q') then begin
  45.             Textmode(2); Halt;
  46.   end;
  47. end;  (* Procedure Node. *)
  48. {-------------------------------------------------------------------}
  49. Procedure TriDraw(Xlow,Yhi,Hlen,Vlen : Integer);
  50.  
  51. Var
  52.         Xhlow,Xhhi,Yhlow,Yhhi : Integer;   (* Hires coordinates. *)
  53.   {===============================================================}
  54. Begin
  55.  
  56. Xhlow:=8*Xlow-2;          Yhhi:=8*Yhi -4;      (*  Compute Hi-res   *)
  57.  Xhhi:=8*Hlen+Xhlow-2;   Yhlow:=8*Vlen+Yhhi;   (* scale end points. *)
  58.  
  59.    Draw(Xhlow,Yhlow,Xhhi,Yhhi,1);                (*  Draws Triangle *)
  60.    Draw(Xhlow,Yhlow,Xhhi,Yhlow,1);
  61.    Draw(Xhhi,Yhlow,Xhhi,Yhhi,1);
  62. end;
  63. {===================================================================}
  64. (*      Box drawing procedure.  Define by upper left corner and
  65.           lengths of horizontal and vertical lines.  Xlow,Yhi
  66.               and lengths input just before Boxes call.
  67. *)
  68. Procedure Boxes;         (*  Upper left corner x,y and side    *)
  69. Begin
  70. Gotoxy(Xlow, Yhi);   Write(#218);     (* Position upper left corner. *)
  71.   For I:=1 to Hlen do begin           (* Write top line and corners. *)
  72.      Write(#196);
  73.   end;
  74.     Write(#191);
  75.     Xlow:=Xlow+Hlen+1;              (*   X is same for vertical.    *)
  76.   For I:=1 to Vlen do begin         (*  Write R vertical and corner.*)
  77.     Yhi:=Yhi+1;
  78.       Gotoxy(Xlow, Yhi);
  79.         Write(#179);
  80.   end;
  81. Gotoxy(Xlow, Yhi+1);  Write(#217);
  82.     Yhi:=Yhi+1;
  83.   For I:=1 to Hlen do begin         (*  Y same for horizontal.*)
  84.     Xlow:=Xlow-1;
  85.       Gotoxy(Xlow, Yhi);
  86.         Write(#196);
  87.   end;
  88. Gotoxy(Xlow-1, Yhi);  Write(#192);
  89.     Xlow:=Xlow-1;                   (*  X same for vertical. *)
  90.   For I:=1 to Vlen do begin
  91.     Yhi:=Yhi-1;
  92.       Gotoxy(Xlow, Yhi);
  93.         Write(#179);
  94.   end;
  95. end;   (* Procedure Boxes. *)
  96. {===================================================================}
  97.  
  98. Procedure Ruler;
  99. Begin            Hires;
  100.  
  101.         Xlow:=14;        Yhi:= 2;           (* Axis specifications. *)
  102.         Hlen:=48;       Vlen:= 4;
  103.                        Yzero:=Yhi+Vlen;
  104.   {-----------------------------------------------------------------}
  105.  
  106. Xhlow:=8*Xlow-2;          Yhhi:=8*Yhi -4;      (*  Compute Hi-res   *)
  107.  Xhhi:=8*Hlen+Xhlow-2;   Yhlow:=8*Vlen+Yhhi;   (* scale end points. *)
  108.  
  109.   {---------------------------------------------------------------}
  110.                   Yinc:=Yhi+1;
  111.                   Vindx:=Round(Vlen/2);
  112.  
  113. Gotoxy(Xlow,Yhi);  Write(#218);
  114. For I:=1 to Vlen-1 do begin                  (* Ruler left side.*)
  115.   Gotoxy(Xlow,Yhi+I);
  116.     Write(#179);
  117. end;
  118.   Gotoxy(Xlow,Yzero);  Write(#195);
  119.   {---------------------------------------------------------------}
  120.  
  121.   Xwide:=Round(Hlen/2);
  122.    Xinc:=Xlow;
  123.  
  124. For I:=1 to Xwide do begin                 (* Write X axis.*)
  125.   Gotoxy(Xinc+1, Yzero);
  126.     Write(#196,#194);
  127.     Xinc:=Xinc+2;
  128. end;
  129.     Gotoxy(Xlow+Hlen,Yhi+Vlen); Write(#180);
  130.  
  131. Gotoxy(Xlow,Yhi+Vlen+1);                   (* Write X Scale numbers.*)
  132.   For I:= 0 to 9  do Write(I,'   ');
  133.   For I:=10 to 12 do Write(I,'  ' );
  134.   {---------------------------------------------------------------}
  135.     Draw(Xhlow,Yhhi,Xhhi,Yhhi ,1);         (* Put box around axes.*)
  136.     Draw(Xhhi ,Yhhi,Xhhi,Yhlow,1);
  137. Gotoxy(Xlow+10,Yhi+2); Write(' **** An Ordinary Ruler **** ');
  138.  
  139. end;   (* Procedure Ruler.*)
  140.  
  141. {====================================================================}
  142.                           Procedure MapsControl; Forward;
  143. Procedure  RulerControl;
  144.  
  145. Begin  Clrscr;  Textmode(2);      (********** RULER CONTROL ************)
  146.  
  147. Writeln('                  [**********************************]               ');
  148. Writeln('                  [*                                *]               ');
  149. Writeln('                  [*    Mathematics is a LANGUAGE.  *]               ');
  150. Writeln('                  [*                                *]               ');
  151. Writeln('                  [**********************************]               ');
  152.   Writeln;
  153. Writeln('          Mathematics is a language, so we start by comparing it     ');
  154. Writeln('          with everyday English.  Here is a simple sentence:         ');
  155.   Writeln;
  156. Writeln('                           The tree is tall.                         ');
  157.   Writeln;
  158. Writeln('       These words tell us something about trees.  It is a complete  ');
  159. Writeln('       thought.  We therefore say that a sentence is our basic unit  ');
  160. Writeln('       of communication in English.  Similarly, we have a basic unit ');
  161. Writeln('       in mathematics:                                               ');
  162.   Key; Gotoxy(1,18);
  163. Writeln('                    The equation is the communication                ');
  164. Writeln('                          unit in mathematics.                       ');
  165.   Xlow:=18; Yhi:=16; Hlen:=37; Vlen:=4; Boxes;
  166.  
  167.   Gotoxy(1,23);
  168. Writeln('                        Now, what does this mean?                  ');
  169. Writeln('                        -------------------------                  ');
  170.   Key; Clrscr;
  171.   Gotoxy(1,1);
  172. Writeln('            The idea behind equations is simple - so simple that     ');
  173. Writeln('                people tend to overlook it.  Here it is:             ');
  174.     Key;Gotoxy(1,6);
  175. Writeln('                     An Equation is a Statement that                    ');
  176. Writeln('                      2 Things have the Same Value.                     ');
  177.   Gotoxy(20,4);For I:=1 to 36 do Write(#196);
  178.   Gotoxy(20,9);For I:=1 to 36 do Write(#196);
  179.  
  180.   Key;Gotoxy(1,25);For I:=1 to 3 do Writeln;
  181.   Gotoxy(1,7);
  182. Writeln('            Every day, we use this idea in many ways.  Example:   ');
  183. Writeln('            In United States money the dollar is the unit, and     ');
  184. Writeln('            we have coins for quarters of dollars.  So,                                      ');
  185.    Key;Gotoxy(1,11);
  186. Writeln('                     One dollar equals 4 quarters.                     ');
  187. Writeln('                     One dollar   =    4 quarters.                     ');
  188. Writeln('                              1   =    4(.25).                         ');
  189. Writeln('                              Y   =    X(.25).                         ');
  190.     Key;Gotoxy(1,16);
  191. Writeln('         The first 2 statements are obvious.  The third, however,     ');
  192. Writeln('         has NO identification (units of measurement).  Hence it      ');
  193. Writeln('         is a mathematics expression: One equals 4 fourths (true).    ');
  194.    Key;Gotoxy(1,20);
  195. Writeln('         The last is a linear equation.  It`s just a more general     ');
  196. Writeln('         statement.  In words, it says:  I may use any number for     ');
  197. Writeln('         X.  When I multiply X by .25, a number I call Y results.     ');
  198. Writeln('            I make both sides of the equation to be the same!         ');
  199.   Key;Gotoxy(1,25);For I:=1 to 10 do Writeln;
  200.     Xlow:=9; Yhi:=15; Hlen:=58; Vlen:=5; Boxes;
  201.  
  202. Gotoxy(11,15); Write(' Because of this, to BOTH SIDES of any equation we may: ');
  203.   Key;
  204. Gotoxy(19,17); Write('    Add   or Subtract  the same amount.');
  205. Gotoxy(19,18); Write(' Multiply or Divide by the same amount.');
  206.   Key;
  207. Gotoxy(19,20); Write('     That`s how we solve equations!     ');
  208. Gotoxy(19,21); Write('     ------------------------------     ');
  209.   Key;
  210.  
  211.  
  212.   Clrscr; Gotoxy(1,3);
  213.   Gotoxy(1,1);
  214. Writeln('                   Straight Lines and Linear Equations.                  ');
  215. Writeln('                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   ');
  216. Writeln('        A general expression for a linear equation in 2 variables is:    ');
  217. Writeln;
  218. Writeln('                           a1X + b1Y + C1 = 0.                           ');
  219. Writeln;
  220. Writeln('        Looks awfully mathematical, doesn`t it?   At present, set it     ');
  221. Writeln('        aside, and look for straight lines in our daily lives.  We use   ');
  222. Writeln('        them constantly without being aware of it.   Examples follow.    ');
  223.   Key;
  224.   Gotoxy(1,25);Writeln; Writeln;Writeln;Writeln;
  225.   Gotoxy (1,7);
  226. Writeln('          1. Look around you.  Every object you see is within your      ');
  227. Writeln('          line-of-sight.  Light comes to you in straight lines,         ');
  228. Writeln('           approximately.  Linear equations make straight lines.        ');
  229.   Key; Gotoxy(1,11);
  230. Writeln('          2. Distant objects appear small, and near ones, large.  So    ');
  231. Writeln('          lines from objects to your eye form `cone-shaped patterns.`   ');
  232.   Key; Gotoxy(1,14);
  233. Writeln('          3. Study a map, like one of your city or state.  Maps are dra- ');
  234. Writeln('          wn on rectangular grids.  We find places by referring to the   ');
  235. Writeln('          grid lines, starting along sides of the map.  Points are loc-  ');
  236. Writeln('          ated by grid line intersections.  Study several maps, because  ');
  237. Writeln('          we use the same ideas in mathematics!  In fact, much of mathem-');
  238. Writeln('          atics was invented to make maps.   More about all this later.  ');
  239.   Key;Gotoxy(1,21);
  240. Writeln('          A ruler is the next common object we consider.   With them we   ');
  241. Writeln('          draw lines and measure things.  But there is more to them too.  ');
  242.   Key;
  243.     Ruler;
  244.   Key;
  245. Gotoxy(1,10);
  246. Writeln('       Here is a 12 inch ruler.  Never mind that the scale is outside.   ');
  247. Writeln('       Shortly we relate it to that silly math expression - and maps.    ');
  248. Writeln('       That`s why the scale is where it is.  Now consider things about   ');
  249. Writeln('       rulers you might not have thought about.                                 ');
  250.   Key; Gotoxy(1,15);
  251. Writeln('       The numbers for inches are just consecutive numbers.  We use the  ');
  252. Writeln('       same numbers for a centimeter-scaled ruler, with the lines closer ');
  253. Writeln('       together.  In each inch, there are about 2.54 centimeters.        ');
  254.   Key; Gotoxy(1,10);
  255. Writeln('       Our ruler has a beginning point identified by zero, which is     ');
  256. Writeln('       not shown on other rulers.  The zero point is used constantly,   ');
  257. Writeln('       however, when we measure things.                               ');
  258.   For I:=1 to 6 do
  259. Writeln('                                                                        ');
  260.   Key;Gotoxy(1,14);
  261. Writeln('       We place a ruler so that its beginning point is where we want   ');
  262. Writeln('       it.  For instance on the edge of the paper to be measured, obv-  ');
  263. Writeln('       iously.  But suppose you want to measure a circle?  Where does    ');
  264. Writeln('       it begin - and end?  Or suppose you want to draw a map on the    ');
  265. Writeln('       surface of an orange or grapefruit.  Where do you put the zero   ');
  266. Writeln('       point of the ruler?                                              ');
  267.   Key;Gotoxy(1,21);
  268. Writeln('       We now put together what we have learned about maps and rulers.  ');
  269. Writeln('       They are called Rectangular Coordinates.  On them, we draw stra- ');
  270. Writeln('       ight lines, and all kinds of other math expressions.              ');
  271.  
  272. Node;
  273. MapsControl;
  274.  
  275. end;  (* Procedure RulerControl. *)
  276. {===========================================================================}
  277. (*******************************************************************)
  278. (*                                                                 *)
  279. (*  Draws a `Map of your neighborhood.`  This introduces people    *)
  280. (*  to `Map making on graph paper.' From there it`s an easy step   *)
  281. (*  to rectangular coordinates.  In addition, it provides a base   *)
  282. (*  for `making your own maps` - exercises in applied math.        *)
  283. (*                                                                 *)
  284. (*******************************************************************)
  285.  
  286. Procedure Maps;
  287. Begin            Hires;
  288.   Gotoxy(7,3);Write(' Rectangular '); Gotoxy(56,3);Write('    Pure ');
  289.   Gotoxy(7,4);Write(' Coordinates '); Gotoxy(56,4);Write(' Mathematics ');
  290.   Gotoxy(7,5);Write(' ~~~~~~~~~~~ '); Gotoxy(56,5);Write(' ~~~~~~~~~~~ ');
  291.                                       Gotoxy(56,7);Write(' Space of 2 ');
  292.                                       Gotoxy(56,8);Write(' Dimensions ');
  293.                                       Gotoxy(56,9);Write(' ~~~~~~~~~~ ');
  294.         Xlow:=26;        Yhi:= 1;           (* Axis specifications. *)
  295.         Hlen:=24;       Vlen:=12;
  296.                        Yzero:=Yhi+Vlen;
  297.   {-----------------------------------------------------------------}
  298.  
  299. Xhlow:=8*Xlow-2;          Yhhi:=8*Yhi -4;      (*  Compute Hi-res   *)
  300.  Xhhi:=8*Hlen+Xhlow-2;   Yhlow:=8*Vlen+Yhhi;   (* scale end points. *)
  301.  
  302.   {---------------------------------------------------------------}
  303.                   Yinc:=Yhi+1;
  304.                   Vindx:=Round(Vlen/2);
  305. Gotoxy(Xlow,Yhi);  Write(#218);
  306. For I:=1 to Vindx do begin                 (* Write Yaxis. *)
  307.   Gotoxy(Xlow, Yinc);
  308.     Write(#195);
  309.   Gotoxy(Xlow,Yinc+1);
  310.     Write(#197);
  311.       Yinc:=Yinc+2;
  312. end;
  313.  
  314. Ysc:=0;   Ty:=Yzero;                       (* Write Y scale numbers.*)
  315.   For I:=0 to 6 do begin
  316.     Gotoxy(Xlow-2,Ty); Write(Ysc);
  317.       Ysc:=Ysc+1;
  318.        Ty:=Ty-2;
  319.   end;
  320.  
  321. Gotoxy(Xlow,Yzero);  Write(#192);          (*  Write corner. *)
  322.   {---------------------------------------------------------------}
  323.  
  324.   Xwide:=Round(Hlen/2);
  325.    Xinc:=Xlow;
  326. For I:=1 to Xwide do begin                 (* Write X axis.*)
  327.   Gotoxy(Xinc+1, Yzero);
  328.     Write(#196,#194);
  329.     Xinc:=Xinc+2;
  330. end;
  331.  
  332. Gotoxy(Xlow,Yhi+Vlen+1);                   (* Write X Scale numbers.*)
  333.   For I:= 0 to 6 do Write(I,'   ');
  334.  
  335.   {---------------------------------------------------------------}
  336.  
  337.     Draw(Xhlow,Yhhi,Xhhi,Yhhi ,1);         (* Put box around axes.*)
  338.     Draw(Xhhi ,Yhhi,Xhhi,Yhlow,1);
  339.  
  340.     Draw(Xhlow,Yhhi+32,Xhhi,Yhhi+32,1);    (* Draw `graph paper` lines.*)
  341.     Draw(Xhlow,Yhhi+64,Xhhi,Yhhi+64,1);
  342.     Draw(Xhlow+ 62,Yhlow,Xhlow+ 62,Yhhi,1);
  343.     Draw(Xhlow+126,Yhlow,Xhlow+126,Yhhi,1);
  344.  
  345. Gotoxy(21,1); Write('Y');  Gotoxy(53,14); Write('X');
  346. end;   (* Procedure Maps *)
  347.  
  348. {====================================================================}
  349.                         Procedure EquationControl; Forward;
  350. Procedure MapsControl;
  351.  
  352. Begin   Clrscr;         (********** MAPS CONTROL ************)
  353.    Gotoxy(1,2);
  354.  
  355. Writeln('       Rectangular coordinate systems are used throughout mathematics.   ');
  356. Writeln('       They look like grids on maps.   Along the sides are ruler-like    ');
  357. Writeln('       number scales for locating things, as on a map.  However, there   ');
  358. Writeln('              is an important difference.  We consider it now.           ');
  359.   Key; Gotoxy(1,7);
  360.  
  361.   Gotoxy(15,7);Write(#218); For I:=1 to 48 do Write(#196);
  362.   Gotoxy(64,7);Write(#191);
  363.   Gotoxy(1,8);
  364.  
  365. Writeln('              |    Rectangular coordinates, and their number   |           ');
  366. Writeln('              |    scales, do NOT relate to anything of the    |           ');
  367. Writeln('              |    physical world.  They relate only to the    |           ');
  368. Writeln('              |        language of mathematics itself.         |           ');
  369. Writeln('              |________________________________________________| ');
  370.   Key; Gotoxy(1,14);
  371.  
  372. Writeln('       The instant we say that a given mathematical scale represents,    ');
  373. Writeln('       for example, the scale on a map, we have moved from `pure` to     ');
  374. Writeln('            `applied` mathematics.      They are different!!             ');
  375.   Key;Gotoxy(1,18);
  376. Writeln('       Pure mathematics provides the language for endless applications.  ');
  377. Writeln('       Like all languages, however, words are not the things they rep-   ');
  378. Writeln('       resent!  Confusion and blundering always result when people fail   ');
  379. Writeln('       to distinguish between pure and applied mathematics.              ');
  380.   Key;Gotoxy(1,23);
  381. Writeln('                   Now, on to rectangular coordinates.      ');
  382.   Key;
  383.     Maps;
  384.   Key;
  385.   Gotoxy(1,17);
  386. Writeln('         Here is our coordinate system for a mathematical space of 2 ');
  387. Writeln('         dimensions.   Horizontal lines (X axis) make one dimension, ');
  388. Writeln('         and vertical lines (Y axis) make the other.  As on maps, we ');
  389. Writeln('         locate positions by the intersections of lines.             ');
  390.   Key;Gotoxy(1,22);
  391. Writeln('         Finally, here is a plot of a linear equation on the system.   ');
  392. Writeln('          Note the RIGHT TRIANGLES formed by the line and the axes!  ');
  393.   Key;
  394. Draw(Xhlow,Yhlow,Xhhi,Yhhi,1);
  395.   Key;Clrscr;
  396. Gotoxy(1,10);
  397. Writeln('          This completes our introduction to lines, and coordinate   ');
  398. Writeln('                   systems.  Now for details about them.            ');
  399. Writeln('                   -------------------------------------            ');
  400.  
  401.  
  402.   Node;
  403.   EquationControl;
  404.   Textmode(2);
  405.  
  406. end;  (* Procedure MapsControl. *)
  407. {====================================================================}
  408. (*******************************************************************)
  409. (*                                                                 *)
  410. (*  Explains fundamentals of linear equations, and relates them    *)
  411. (*           to things in their daily lives.                       *)
  412. (*                                                                 *)
  413. (*******************************************************************)
  414.                             Procedure ItDraws; Forward;
  415. Procedure EquationControl;
  416.  
  417. Begin                 (********** EQUATIONS CONTROL ************)
  418.   Clrscr; Textmode(2);
  419.  
  420. Maps; Gotoxy(21,1);Write('Y');  Gotoxy(53,14);Write('X');
  421.   Key;
  422.       Xlow:= 8; Yhi:=15; Hlen:=58; Vlen:=9; Boxes;
  423.  
  424. Gotoxy(17,17);Write(' Here again is our simple linear equation.');
  425.   Key;  Draw(Xhlow,Yhlow,Xhhi,Yhhi,1);
  426.   Key;
  427. Gotoxy(12,17);Write('  Two points establish a straight line.  We write ');
  428. Gotoxy(12,18);Write('  a point as (X,Y).   The origin of the system is   ');
  429. Gotoxy(12,19);Write('  (0,0).  Other points on the line are (2,2) (4,4). ');
  430.   Key;
  431. Gotoxy(12,21);Write('      Its equation is:  Y  = X   or             ');
  432. Gotoxy(12,22);Write('                       Y/X = 1   or   X/Y = 1.  ');
  433.   Key;  For I:=1 to 6 do begin
  434. Gotoxy(12,16+I);Write('                                                     ');
  435.   end;
  436.  
  437. Gotoxy(12,17);Write('  Suppose we have 2 points, how do we derive the  ');
  438. Gotoxy(12,18);Write('  equation that passes through them?  We do this  ');
  439. Gotoxy(12,19);Write('  in later programs.  More about basics now.      ');
  440.   Key;
  441. Gotoxy(12,17);Write('  Another way to make lines is with one point and ');
  442. Gotoxy(12,18);Write('  a direction.  Direction?   What is a `direction` ');
  443. Gotoxy(12,19);Write('  in mathematics?  Look at the above line to see.  ');
  444.   Key;  For I:=1 to 6 do begin
  445. Gotoxy(12,16+I);Write('                                                     ');
  446.   end;
  447.  
  448. Gotoxy(12,17);Write('  The coordinate system is the reference base for  ');
  449. Gotoxy(12,18);Write('  directions.  Start at (0,0), and move up the X   ');
  450. Gotoxy(12,19);Write('  axis.  The line goes up 1 Y unit per X unit.     ');
  451.   Key;
  452. Gotoxy(12,21);Write('      Hence `the SLOPE OF THE LINE` is:  +1.      ');
  453.   Key;
  454. Gotoxy(12,22);Write('      And here is a line with a slope of -1.      ');
  455.   Key;
  456.   Draw(Xhlow,Yhhi,Xhhi,Yhlow,1);
  457.  
  458.   Key;  For I:=1 to 6 do begin
  459. Gotoxy(12,16+I);Write('                                                     ');
  460.   end;
  461.  
  462. Gotoxy(12,17);Write('  Directions in mathematics are also stated by the  ');
  463. Gotoxy(12,18);Write('  angle between the line and the X axis, or by its  ');
  464. Gotoxy(12,19);Write('  tangent.  But `slope` is enough for now.      ');
  465.   Key;
  466. Gotoxy(12,17);Write('  A line also crosses the Y axis at a point called ');
  467. Gotoxy(12,18);Write('  the `Y intercept.`  Slope and intercept are the  ');
  468. Gotoxy(12,19);Write('    2 parts of the linear equation:  Y = mX + b.   ');
  469.   Key;
  470. Gotoxy(12,21);Write('    The slope is m, and the Y intercept is b.     ');
  471.   Key;
  472. Gotoxy(12,22);Write('    For the 2 lines above, slopes are  +1  -1.    ');
  473. Gotoxy(12,23);Write('                     Y intercepts are   0   6.    ');
  474.   Key;  For I:=1 to 7 do begin
  475. Gotoxy(12,16+I);Write('                                                     ');
  476.   end;
  477.  
  478. Gotoxy(12,19);Write('This completes our introduction to linear equations. ');
  479. Gotoxy(12,20);Write('Next section:   You input the slope and Y intercept. ');
  480. Gotoxy(12,21);Write('        The computer draws the line for you.   ');
  481.   Node;
  482.   ItDraws;
  483.  
  484. end;   (* EquationControl.*)
  485. {===================================================================}
  486.  
  487. { This draws nice circles, or arcs of them.  You must specify
  488.   the center (Xc,Yc) and other obvious things.  Remember that you
  489.                     are in HiRes too!
  490. }
  491. Procedure Circles;
  492.   Var                   Np,Xc,Yc,I,X,Y : Integer;
  493.            Yr,Xr,Scale,Xrange,Yrange,A : Real;
  494.  
  495.   {===============================================================}
  496. Begin
  497.     A:=0;  Np:=100;    Xc:=Xhlow;             Yc:=Yhlow;
  498.                    Xrange:=Xhhi-Xhlow-2;   Yrange:=Yhlow-Yhhi;
  499. Xrange:=Mradius*Xrange/6;  Yrange:=Mradius*Yrange/6;
  500.  
  501. Scale:=Pi/(2*Np);     (* 2Pi/Np makes FULL CIRCLE. Change as wanted.*)
  502.  
  503.   For I:= 1 to Np+1 do begin
  504.  
  505.     Xr:=Round(Cos( A)*Xrange + Xc);   X:=Trunc(Xr);
  506.     Yr:=Round(Sin(-A)*Yrange + Yc);   Y:=Trunc(Yr);
  507.         A:=A+Scale;
  508.     Plot(X,Y,1);
  509.   end;
  510. Gotoxy(37,17);  Write('X');
  511. Gotoxy(5,4  );  Write('Y');
  512. end;   (* Procedure Circles. *)
  513. {===================================================================}
  514. Procedure Axes;
  515. Begin
  516.         Xlow:=10;        Yhi:= 4;           (* Axis specifications. *)
  517.         Hlen:=24;       Vlen:=12;
  518.                        Yzero:=Yhi+Vlen;
  519.   {-----------------------------------------------------------------}
  520.  
  521. Xhlow:=8*Xlow-2;          Yhhi:=8*Yhi -4;      (*  Compute Hi-res   *)
  522.  Xhhi:=8*Hlen+Xhlow-2;   Yhlow:=8*Vlen+Yhhi;   (* scale end points. *)
  523.  
  524.   {---------------------------------------------------------------}
  525.                   Yinc:=Yhi+1;
  526.                   Vindx:=Round(Vlen/2);
  527. Gotoxy(26,1); Write(' Computer Draws Your Lines. ');
  528. Gotoxy(26,2); Write(' ~~~~~~~~~~~~~~~~~~~~~~~~~~ ');
  529. Gotoxy(Xlow,Yhi);  Write(#218);
  530. For I:=1 to Vindx do begin                 (* Write Yaxis. *)
  531.   Gotoxy(Xlow, Yinc);
  532.     Write(#195);
  533.   Gotoxy(Xlow,Yinc+1);
  534.     Write(#197);
  535.       Yinc:=Yinc+2;
  536. end;
  537.  
  538. Ysc:=0;   Ty:=Yzero;                       (* Write Y scale numbers.*)
  539.   For I:=0 to 6 do begin
  540.     Gotoxy(Xlow-2,Ty); Write(Ysc);
  541.       Ysc:=Ysc+1;
  542.        Ty:=Ty-2;
  543.   end;
  544.  
  545. Gotoxy(Xlow,Yzero);  Write(#192);          (*  Write corner. *)
  546.   {---------------------------------------------------------------}
  547.  
  548.   Xwide:=Round(Hlen/2);
  549.    Xinc:=Xlow;
  550.  
  551. For I:=1 to Xwide do begin                 (* Write X axis.*)
  552.   Gotoxy(Xinc+1, Yzero);
  553.     Write(#196,#194);
  554.     Xinc:=Xinc+2;
  555. end;
  556.  
  557. Gotoxy(Xlow,Yhi+Vlen+1);                   (* Write X Scale numbers.*)
  558.   For I:= 0 to 6 do Write(I,'   ');
  559.  
  560.   {---------------------------------------------------------------}
  561.  
  562.     Draw(Xhlow,Yhhi,Xhhi,Yhhi ,1);         (* Put box around axes.*)
  563.     Draw(Xhhi ,Yhhi,Xhhi,Yhlow,1);
  564.  
  565.     Draw(Xhlow,Yhhi+32,Xhhi,Yhhi+32,1);    (* Draw `graph paper` lines.*)
  566.     Draw(Xhlow,Yhhi+64,Xhhi,Yhhi+64,1);
  567.     Draw(Xhlow+ 62,Yhlow,Xhlow+ 62,Yhhi,1);
  568.     Draw(Xhlow+126,Yhlow,Xhlow+126,Yhhi,1);
  569.  
  570. Gotoxy(5,4); Write('Y');  Gotoxy(37,17); Write('X');
  571.  
  572. If Mradius<>0 then Circles;
  573.  
  574. end;     (* Procedure Axes. *)
  575. {====================================================================}
  576.                       Procedure ProjectsOne; Forward;
  577. Procedure ItDraws;
  578. Begin  Clrscr;           (********** CALLS CIRCLES & AXES ************)
  579.  
  580. Gotoxy(1,6);
  581. Writeln('                          Computer Draws Lines           ');
  582. Writeln('                          ~~~~~~~~~~~~~~~~~~~~           ');
  583.   Gotoxy(1,9);
  584.  
  585. Writeln('           The computer now draws lines for you (at most 5). A   ');
  586. Writeln('           coordinate system is displayed.  For each line, you    ');
  587. Writeln('           input the slope and the Y intercept.   The computer    ');
  588. Writeln('                draws the line and displays the equation.         ');
  589.   Writeln;
  590. Writeln('           There are relationships between straight and curved    ');
  591. Writeln('           lines.  So that you may start to see them, an arc of   ');
  592. Writeln('           a circle can be input first.  For its radius, enter    ');
  593. Writeln('                   a number in the range 0-6 (except 0).          ');
  594. Writeln('                   ------------------------------------           ');
  595.   Gotoxy(17,20);
  596.                 Write('   ---> Want Circle Arc on Graph? <---');
  597.   Gotoxy(20,22);Write('    Enter 0 for `No` or Radius ');
  598.     Read(Mradius);
  599. {---------------------------------------------------------------------}
  600.   Hires; Axes;  Neq:=1;
  601.                     GraphWindow(0,24,300,130);
  602. Repeat
  603.  
  604. Gotoxy(40, 5+Neq);
  605. Write(' Input Y intercept (+/- 6) ');
  606.   Readln(Ycept);    Y1off:=Round(16*Ycept+24);
  607. Gotoxy(40, 6+Neq);    Neq:=Neq+2;
  608. Write(' Input Slope      (+/- 10) ');
  609.   Read(Slope);   Y2off:=Round(96*Slope);
  610.  
  611. Gotoxy(40,Neq+3); Write('    y = ',Slope:2:1,'x + ',Ycept:2:1,'           ');
  612. Gotoxy(40,Neq+4); Write('                                  ');
  613. Draw(Xhlow,Yhlow-Y1off,Xhlow+190,Yhlow-Y1off-Y2off,1);
  614.  
  615.    Gotoxy(42,17); Write('Another equation (Y/N) ? ');
  616.       Repeat
  617.         Read(Kbd,Ch);
  618.         Ch:=Upcase(ch);
  619.       until (Ch In ['Y','N']);
  620.    Gotoxy(42,17); Write('                           ');
  621.  
  622. until (Neq>9) or (Ch='N');
  623.  
  624.   Node;
  625.   ProjectsOne;
  626.   Textmode(2);
  627.  
  628. end;  (* Procedure ItDraws. *)
  629. {===================================================================}
  630.                         Procedure ProjectsTwo; Forward;
  631. Procedure ProjectsOne;
  632. Begin                Clrscr;
  633.   Gotoxy(1,1);
  634. Writeln('                      Enjoyable Learning Projects          ');
  635. Writeln('                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~          ');
  636. Writeln('           Mathematics is a language.  Science is the study of  ');
  637. Writeln('           nature.  Its basic features do not change.  Matter   ');
  638. Writeln('           is matter, and energy is energy.  Math is our lang-  ');
  639. Writeln('           uage for describing the orderly patterns of nature.  ');
  640. Writeln('                   Math foundations remain the same too.        ');
  641.   Writeln;
  642. Writeln('           So how do we approach learning together the fundam-   ');
  643. Writeln('           entals of science and math?   Computers and books     ');
  644. Writeln('           are useful, but experimenting, measuring, and study-  ');
  645. Writeln('           ing results of experiments are essential too.  Hence  ');
  646. Writeln('           our approach must include experiments.  That`s what   ');
  647. Writeln('                 enjoyable learning projects are about.          ');
  648.   Writeln;
  649. Writeln('           A list of recommended books is given in the next pro-  ');
  650. Writeln('           gram (Math22).   Physics books are the best sources   ');
  651. Writeln('           of existing information about projects, although for   ');
  652. Writeln('           present purposes, they are none too good.              ');
  653.   Writeln;
  654. Writeln('           Our approach is new, so we can`t say much about spec-  ');
  655. Writeln('           ific projects.  We sketch just 2 kinds.  Work out de-  ');
  656. Writeln('              tails yourself.  You will learn better that way!     ');
  657. Writeln('              -----------------------------------------------      ');
  658.   Key; ClrScr;
  659.   Gotoxy(1,5);
  660. Writeln('                          Projects #1 - Rates.            ');
  661. Writeln('                          ~~~~~~~~~~~~~~~~~~~~            ');
  662. Writeln('            Simple projects involve us in experimenting and   ');
  663. Writeln('            measuring.  Experiments show us `how things work.` ');
  664. Writeln('            With mathematics we use our measurements to des-   ');
  665. Writeln('            cribe the patterns and flows of nature seen in the ');
  666. Writeln('            experiments.  Understanding all these things takes ');
  667. Writeln('                 time, so don`t expect too much too soon.      ');
  668.   Writeln;
  669. Writeln('          Written instructions are best for experiments, so we only   ');
  670. Writeln('          outline them here.  Rates are featured in the first set.   ');
  671. Writeln('             --------------------------------------------------      ');
  672.  
  673.   Key;Clrscr;Gotoxy(1,3);
  674. Writeln('         1. Flow rates of liquids.  Start a thin stream of water     ');
  675. Writeln('         flowing in the kitchen sink.  Record the number of seconds  ');
  676. Writeln('         required to fill a measuring cup.  Compute the flow rate.   ');
  677. Writeln('         Compute the time required to fill a 1 gallon bucket at the  ');
  678. Writeln('         same rate.  A linear equation will do this.  Check the val- ');
  679. Writeln('         idity of your estimate by filling the bucket!               ');
  680.   Writeln;
  681. Writeln('         2. Constant speed.  On a sidewalk or hallway, mark a start  ');
  682. Writeln('         and finish line 20 to 30 feet apart.  Measure the distance  ');
  683. Writeln('         between them.  Walk at your usual pace, and record the num- ');
  684. Writeln('         ber of seconds to cover the distance.  Compute your walking ');
  685. Writeln('         rate.  If you walked at the same rate, and could do so, how ');
  686. Writeln('         long would it take to walk to the moon?  Assume that the    ');
  687. Writeln('         moon is 240 thousand miles away (linear equation again).    ');
  688.   Writeln;
  689. Writeln('         3. Height changes.  Put on a table a box several inches     ');
  690. Writeln('         high.  Place a stick so that one end rests on the table,    ');
  691. Writeln('         and the other on the box.  At what rate does the stick      ');
  692. Writeln('         rise per inch along the table?  What represents the line,   ');
  693. Writeln('                 and what is the equation for the line?              ');
  694. Writeln('                 --------------------------------------       ');
  695.   Key; Clrscr; Gotoxy(1,8);
  696. Writeln('                Relating the Projects to the Mathematics.             ');
  697. Writeln('                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              ');
  698. Writeln('        Doing experiments is always enjoyable.  People can really    ');
  699. Writeln('        get involved in them.  What then, does the mathematics do    ');
  700. Writeln('        that nothing else can?  That`s what is meant by `Relating    ');
  701. Writeln('        the Projects to the Mathematics.`                            ');
  702. Writeln;
  703.   Key; Gotoxy(1,15);
  704. Writeln('        Before considering this statement, we look at another even   ');
  705. Writeln('        more basic thing - Measurement.   What are the fundamental   ');
  706. Writeln('                        measurements of science?                   ');
  707. Writeln('                        ------------------------                   ');
  708.   Key;
  709.  
  710. Clrscr; Gotoxy(1,8);
  711. Writeln('                 The Three Basic Measurements of Science.       ');
  712. Writeln('                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        ');
  713.   Gotoxy(1,12);
  714.  
  715. Writeln('             Yes, there are only 3 basic measurements needed    ');
  716. Writeln('                     and used in science. they are:    ');
  717.   Key; Xlow:=10; Yhi:=10; Hlen:= 53; Vlen:=6;  Boxes;
  718.   Gotoxy(17,15);
  719. Writeln(' LENGTH        TIME         MASS (Weight). ');
  720.   Key;Gotoxy(1,20);
  721. Writeln('             Only time and length were used in our experiments.  ');
  722. Writeln('                        Now, on to how we used them.   ');
  723. Writeln('                        ----------------------------   ');
  724.   Key; Hires; Gotoxy(1,1);
  725. Writeln('                Relating the Projects to the Mathematics.      ');
  726.  
  727. TriDraw(42,3,20,7);              (* Call Triangle Draw. *)
  728.  
  729.   Gotoxy(42,5); Write('Projects');   Gotoxy(60,6); Write('Water');
  730.   Gotoxy(49,10); Write('Time,Length');Gotoxy(61,7); Write('You');
  731.                                      Gotoxy(60,8); Write('Length');
  732.   Key;Gotoxy(1,12);
  733.  
  734. Writeln('       For each project we computed a rate.  A triangle nicely pictures ');
  735. Writeln('       any rate, because a rate is:   The amount of change in one thing ');
  736. Writeln('       (side scale) per unit change in the other (bottom scale).   For  ');
  737. Writeln('       instance, your walking rate is about 3 to 4 feet per second.  In ');
  738. Writeln('                  our equation Y = mX + b, m is the rate.              ');
  739.   Key;Gotoxy(1,18);
  740. Writeln('       In the water experiment, water quantity is its volume. The unit  ');
  741. Writeln('       of volume is the liter, which is derived from length.  In the    ');
  742. Writeln('       `stick slope` experiment, length is used for both scales.      ');
  743.   Key; Gotoxy(1,22);
  744. Writeln('            Now, what role does `pure mathematics` play in this?  ');
  745. Writeln('            ----------------------------------------------------  ');
  746.   Key; Gotoxy(1,12); For I:=1 to 12 do
  747. Writeln('                                                                         ');
  748.  
  749.  TriDraw(10,3,20,7);
  750.  
  751. Gotoxy(28,7); Write('Change');    Gotoxy(16,9); Write(#224);
  752. Gotoxy(28,8); Write(' in Y ');    Gotoxy(10,5); Write('Mathematics');
  753. Gotoxy(19,10); Write('1 X unit');
  754.   Key;Gotoxy(1,13);
  755. Writeln('         Did you think our `pure math rate-picture` would be a   ');
  756. Writeln('         triangle too?   If so, then perhaps you are beginning   ');
  757. Writeln('               to get a feeling for their relationships.         ');
  758.   Key;Gotoxy(1,13);
  759. Writeln('        The pure math triangle has a bottom length of 1. This is ');
  760. Writeln('        not approximately 1, but EXACTLY 1.  The side length can ');
  761. Writeln('        be any number (including zero).  The numbers are related ');
  762. Writeln('                 by the fact that they form a triangle.          ');
  763.   Key;Gotoxy(1,18);
  764. Writeln('        We have related experiments to applied math, applied math  ');
  765. Writeln('        to pure math.  Now look at relationships within pure math. ');
  766. Writeln('                  (See Math22 for more about triangles.)           ');
  767. Writeln('                  --------------------------------------           ');
  768.   Key;Hires;Gotoxy(1,1);
  769. Writeln('                   Relating Topics Within Pure Math.           ');
  770.  
  771.   TriDraw(45,4,9,4);             Gotoxy(50,6);Write('1');
  772. Gotoxy(41,4);Write(' Circle');   Gotoxy(49,7);Write(#224);
  773. Gotoxy(41,5);Write('Triangle');
  774.   Key;Gotoxy(1,11);
  775.   Gotoxy(1,11);
  776. Writeln('       In the triangles program, we formed them by rotating a rad- ');
  777. Writeln('       ius of length 1, as the diagram shows.  All possible right  ');
  778. Writeln('       triangles with a long side of 1 are thus made.         ');
  779.   Key;Gotoxy(1,15);
  780. Writeln('       Above is one of them.  The shorter sides are the same length, ');
  781. Writeln('       so alpha is 45 degrees.                                     ');
  782.   Key;Gotoxy(1,18);
  783. Writeln('       We are discussing linear equations.  The coefficient of X   ');
  784. Writeln('       is a rate.  Rates make triangles with a bottom length of 1. ');
  785. Writeln('       What do we see when we look together at `rate` and `circle`  ');
  786. Writeln('            right triangles (shorter side lengths the same)?       ');
  787.  
  788.   Key;Gotoxy(1,11);
  789. Writeln('        Here is a `rate triangle` with shorter sides of length 1.  ');
  790. Writeln('         Study the similarities and differences between the two.   ');
  791.   Gotoxy(1,13); For I:=1 to 9 do
  792. Writeln('                                                                    ');
  793.  
  794.   TriDraw(18,3,12,5);
  795. Gotoxy(14,4);Write('  Rate');   Gotoxy(30,6);Write('1');
  796. Gotoxy(14,5);Write('Triangle'); Gotoxy(25,8);Write('1');
  797.                                 Gotoxy(22,7);Write(#224);
  798.  
  799.   Key;Gotoxy(1,14);
  800. Write('        Pythagoras`s theorem, a',#253,' + b',#253,' = c',#253',');
  801.   Gotoxy(45,14);Writeln('allows us to compute ');
  802. Writeln('        the side lengths. Hence for the `rate triangle,` we have: ');
  803.     Key;Gotoxy(24,5);Write(#251,'2');
  804.     Key;Gotoxy(1,17);
  805. Writeln('          The long side length is the square root of 2.  But   ');
  806. Writeln('          what are the side lengths of the `circle triangle?`  ');
  807.    Key;Gotoxy(1,20);
  808. Writeln('                 Compute them and ponder the results!      ');
  809. Writeln('                 -----------------------------------       ');
  810.    Key;Gotoxy(1,22);
  811. Writeln('             This completes our discussion of Projects #1.     ');
  812.   Node;
  813.   ProjectsTwo;
  814. end;    (* Procedure ProjectsOne. *)
  815. {===================================================================}
  816. Procedure ProjectsTwo;
  817.   Begin     Textmode(2); Clrscr;
  818.  
  819.   Gotoxy(1,1);
  820. Writeln('                    Projects #2.  Long-Term Projects.                  ');
  821. Writeln('                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  ');
  822. Writeln('       Long term projects for integrated, systematic study of science  ');
  823. Writeln('       and math are new approaches to learning.  Therefore, there are  ');
  824. Writeln('       no books for it.  A list of recommended books is given at the   ');
  825. Writeln('       end of Math22.  Another title is given later.    Now, what is   ');
  826. Writeln('                   the meaning of `Long-Term Projects?`                ');
  827.   Writeln;
  828. Writeln('       College science courses are somewhat like long term projects.   ');
  829. Writeln('       But we want to do them at home, at any time of life, and we     ');
  830. Writeln('       may want to work on them for years - beginning as youngsters.   ');
  831. Writeln('       In other words, think of them as hobbies, except we are learn-  ');
  832. Writeln('       ing real science and mathematics.                               ');
  833.   Writeln;
  834. Writeln('       Electronics provides many opportunities for long term projects. ');
  835. Writeln('       The programs Ohm1 and Ohm2 on this disk describe opportunities  ');
  836. Writeln('       in that direction.  Others are being prepared.                  ');
  837.   Writeln;
  838. Writeln('       Electronics, however, is too abstract for young children.  We  ');
  839. Writeln('       need something more basic - something to which they can relate ');
  840. Writeln('       while learning to count.  Adults could benefit from new basic  ');
  841. Writeln('       materials too.   Can such materials be devised?    Of course.  ');
  842. Writeln('              `Map Making` provides the core of the approach.    ');
  843. Writeln('              -----------------------------------------------    ');
  844.   Key;Clrscr;
  845.  
  846. Writeln('                      Projects #2.  Math-Mapping.                  ');
  847. Writeln('                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~                  ');
  848. Writeln('       Note the title, Math-Mapping. It`s useful because math and   ');
  849. Writeln('       mapping are closely related, as we have seen.  Map making    ');
  850. Writeln('       can be started with counting and arithmetic.  Its use can    ');
  851. Writeln('       continue into college level material.  As projects and math  ');
  852. Writeln('       are developed, they are related to other science foundation  ');
  853. Writeln('       subjects.  That`s why this approach is suggested.            ');
  854.   Writeln;
  855. Writeln('       Of course there are no books for it.   Even for map making,   ');
  856. Writeln('       few titles are in print.  In the references is:  Brown, L. A. ');
  857. Writeln('       The Story of Maps.  Brown wrote a book on map making too.     ');
  858. Writeln('       It should be helpful, if you can find it.  The Boy Scout Man- ');
  859. Writeln('       ual, Orienteering (#3385) might be useful too.                ');
  860.   Writeln;
  861. Writeln('       Because of the above, all we can do is outline approaches to  ');
  862. Writeln('       unified development.  Once you `get the hang of it,` however, ');
  863. Writeln('       you`ll find that developing them yourself is enjoyable too!    ');
  864.   Writeln;
  865. Writeln('                         Here is how to start:                      ');
  866. Writeln('                         ---------------------                      ');
  867.   Key;Clrscr;
  868.     Gotoxy(1,1); For I:=1 to 6 do begin
  869. Writeln('        ******  USE PHYSICAL DEVICES TO RELATE TO THE MATH  ******     ');
  870. Writeln;
  871.   end;
  872.   Gotoxy(1,15);
  873. Writeln('        Sorry, but that really needs emphasizing.  Excepting wood ');
  874. Writeln('        blocks, we have NO physical-device aids for learning math.');
  875.    Key;Gotoxy(1,18);
  876. Writeln('                     We now start to devise them.                 ');
  877. Writeln('                     ----------------------------                 ');
  878.   Key;Clrscr; Gotoxy(1,4);
  879. Writeln('       Wood Blocks.  Get a set of wood blocks.   Use them to review  ');
  880. Writeln('       arithmetic.  Pay special attention to: The different meanings ');
  881. Writeln('       of zero.  Fractions - Top and bottom numbers mean different   ');
  882. Writeln('       things!!   The botton number is:  The `fraction of 1.`  The   ');
  883. Writeln('       top number is:  How many `fractions of 1` we have.           ');
  884.   Writeln;
  885. Writeln('       Game boards.  Take any game board, such as checkers or battle- ');
  886. Writeln('       ship.  See how you might use it with wood blocks for math lea- ');
  887. Writeln('       rning, and in addition to wood blocks.   Regard the boards as  ');
  888. Writeln('       math rectangular coordinates, and as map grids.  See how much  ');
  889. Writeln('       math and mapping you can learn with its aid.                   ');
  890.   Writeln;
  891. Writeln('       Math-Map Board.  After experimenting with game boards, make a  ');
  892. Writeln('       board specially designed for math learning and mapping. Remem- ');
  893. Writeln('       ber you may use it for years at all levels of learning, and  ');
  894. Writeln('       it`s YOUR PERSONAL BOARD.  Keep making them until you get one  ');
  895. Writeln('       or more that you really like.                                  ');
  896.   Writeln;
  897. Writeln('                      Now for Math-Map Projects. ');
  898. Writeln('                      -------------------------- ');
  899.   Key;Clrscr;
  900.    Gotoxy(1,5);
  901. Writeln('                           Math-Map Projects.                        ');
  902. Writeln('                           ~~~~~~~~~~~~~~~~~~                        ');
  903. Writeln('       We are discussing long-term activities. Specific experiments,  ');
  904. Writeln('       like those described earlier, are part of long term studies.   ');
  905. Writeln('                It`s `areas of knowledge` we want to learn.           ');
  906. Writeln('                -------------------------------------------     ');
  907.   Writeln;
  908. Writeln('       Mapping.  Learn `Table-Top Mapping.`  In other words, start   ');
  909. Writeln('       with simple projects, and work where it`s most convenient.     ');
  910. Writeln('       Put objects on a table, and `draw a map` of their location.   ');
  911. Writeln('       Repeat your experiments, bringing in as much math as you can  ');
  912. Writeln('       can handle at the time.  As you learn, new possibilities will ');
  913. Writeln('       suggest themselves.                                           ');
  914.   Writeln;
  915. Writeln('       At times, work with others.  Share what you have learned, and ');
  916. Writeln('       discuss things not yet understood.  Try to see how your appr- ');
  917. Writeln('       oach to `maps` and math applies to other situations too.     ');
  918.  
  919.   Key; Clrscr; Gotoxy(1,5);
  920. Writeln('       Get a notebook.  Keep notes of what you do.  Learning WHAT   ');
  921. Writeln('       to write down, and how to review your notes, is a vital part   ');
  922. Writeln('       of learning.    Sorry, I know of NO references to guide you   ');
  923. Writeln('       here.  But this may help:   When you feel that you really   ');
  924. Writeln('       understand something, write a summary of the topic.  Set it ');
  925. Writeln('       aside for some weeks, and go over it again.   You will see  ');
  926. Writeln('       your material `in a different light,` and will learn in the   ');
  927. Writeln('       process.  Do this again over a period of months - years too.  ');
  928.  
  929.   Writeln;
  930. Writeln('        Mathematics.  We are studying science and math together, ');
  931. Writeln('        so there is not much else to say.  When looking at math  ');
  932. Writeln('        books, however, see if you can work problems with the    ');
  933. Writeln('        aid of your math-map board.   Remember that there are    ');
  934. Writeln('        relationships `within math,` as well as `between math    ');
  935. Writeln('        and experiments.`  Use your board to study within-math   ');
  936. Writeln('                          relationships too.                     ');
  937. Writeln('                          ------------------                     ');
  938.   Key;Clrscr;
  939. Gotoxy(20,9); Write(' End Of Program Math21 of the Series:');
  940. Gotoxy(20,10); Write('Foundations of Science and Mathematics.');
  941.     Xlow:=17; Yhi:=7; Hlen:=42; Vlen:=4;  Boxes;
  942.  
  943. Gotoxy(16,15); Write(' The Program Math22 covers the the Theorem of  ');
  944. Gotoxy(16,16); Write('    Pythagoras, Triangles, and their uses.     ');
  945. Gotoxy(16,17); Write('    --------------------------------------     ');
  946. Gotoxy(23,24);
  947. Write('Press `M` for Menu, `Q` to Quit.');
  948.   Repeat
  949.     Read(Kbd,Ch);
  950.     Ch:=Upcase(Ch);
  951.   until (Ch in ['M','Q']);
  952. If Ch='M' then MainControl;
  953. Halt;
  954.  
  955. end;  (* Procedure ProjectsTwo. *)
  956. {===================================================================}
  957. Procedure MainControl;
  958.  
  959. Begin                           (*  ***  MAINCONTROL  ***  *)
  960.     Assign(Ccontrol,'Control.com');
  961.   Clrscr;
  962.   Gotoxy(1,3);
  963.  
  964. Writeln('                      RELATING TO LINEAR EQUATIONS   ');
  965. Writeln('                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~         ');
  966.   Gotoxy(1,7);
  967. Writeln('            First program about linear equations.   Highlights  ');
  968. Writeln('            are: Relating equations to lines, rulers, maps and  ');
  969. Writeln('             map making, and distinguishing between pure and    ');
  970. Writeln('                          applied mathematics.                  ');
  971.  
  972.   Gotoxy(1,14);
  973. Writeln('                        Press key for topic wanted:    ');
  974. Writeln('                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~    ');
  975. Writeln('               1 Equations & lines.         4 Computer drawn lines.  ');
  976. Writeln('               2 Rectangular coordinates.   5 Projects & math.       ');
  977. Writeln('               3 Lines & coordinates.       6 Long-term projects.    ');
  978. Writeln('                              C Control program.                     ');
  979. Writeln('                          _______________________                    ');
  980. Gotoxy(71,25);Write('Oct 1985');
  981. Gotoxy( 1,25);Write('Math21');
  982.   Xlow:= 9; Yhi:=5;
  983.   Vlen:= 6; Hlen:=56;    Boxes;
  984.   {-------------------------------------------------------}
  985.  
  986. Gotoxy(1,16);Write('I want no.');
  987.  
  988. Repeat
  989.   Read(Kbd,Zh);
  990.   Zh:=UpCase(zh);
  991. until (zh in ['1','2','3','4','5','6','C']);
  992.  
  993. Case Zh of          (*   Calls procedure wanted.   *)
  994.   '1':  RulerControl;
  995.   '2':  MapsControl;
  996.   '3':  EquationControl;
  997.   '4':  ItDraws;
  998.   '5':  ProjectsOne;
  999.   '6':  ProjectsTwo;
  1000.   'C':  Execute(Ccontrol);
  1001. end;  (* Case *)
  1002.  
  1003. end;  (* Procedure MainControl. *)
  1004. {===================================================================}
  1005. Begin                 (************  MAIN PROGRAM  ***************)
  1006.  
  1007.   MainControl;
  1008.   Textmode(2);
  1009.  
  1010. end.
  1011. {===================================================================}
  1012.  
  1013.